//存放主要交互逻辑js逻辑代码
//javascript 模块化
//seckill.detail.init(params)
var seckill = {

    //封装秒杀先关的ajax的url
    url: {
        now: function () {
            return '/miaosha/time/now';//次路径是来自controller
        },
        exposer: function (id) {
            return '/miaosha/' + id + '/exposer';//将url在此处写成方法，方便修改，下次直接调用该方法
        },
        execution: function (id, md5) {
            return '/miaosha/' + id + '/' + md5 + '/execution';
        }

    },
    handleSecKillKill:   function(id,node){
        //处理秒杀逻辑
        node.hide().html
        ("<button class='btn btn-primary btn-lg' id='killBtn'>开始秒杀</button>");
        $.post(seckill.url.exposer(id),{},function (result) {
            //交互流程
            if(result && result['success']){
                //可以秒杀就不显示时间图标
                node.prev().hide();
                var exposer = result['date'];
                if(exposer['exposed']){
                    //开启秒杀
                    var killUrl = seckill.url.execution(id,exposer['md5']);
                    console.log("killUrl"+killUrl);
                    $("#killBtn").one("click",function () {
                        $(this).addClass("disabled");
                        $.post(killUrl,{},function (result) {
                            if(result && result['success']){
                                var killResult = result['date'];
                                console.info(result['date']);
                                var state = killResult["state"];
                                var stateInfo = killResult["stateInfo"];
                                //显示秒杀结果
                                node.html("<span class='label label-success'>"+stateInfo+"</span>");
                            }
                        })
                    });
                    node.show();
                }else{
                    //未开启秒杀
                    var now  = exposer['now'];
                    var start = exposer['start'];
                    var end = exposer['end'];
                    //重新计算计时逻辑
                    seckill.countdown(id,now,start,end);
                }
            }else{
                console.log("result:"+result);
            }
        });

    },

//处理秒杀逻辑
    countdown: function (id, nowTime, startTime, endTime) {
        var seckillBox = $('#seckill-box');//jquery的id选择器获取id的值
        //时间判断
        if (nowTime > endTime) {
            //秒杀结束
            seckillBox.html('秒杀结束');
        } else if (nowTime < startTime) {
            //秒杀未开始，计时事件绑定
            var killTime = new Date(startTime + 1000);//加上1s中保证准确性
            seckillBox.countdown(killTime, function (event) {
                //控制时间的格式，每一次变化，都会按照这个时间格式输出
                var format = event.strftime("秒杀倒计时: %D天 %H时 %M分  %S秒");
                seckillBox.html(format);
                //时间完成后回调事件
            }).on('finish.countdown', function () {
                //获取秒杀地址，控制显示逻辑，执行秒杀
                seckill.handleSecKillKill(id, seckillBox);
            });
        } else {
            //秒杀开始
            seckill.handleSecKillKill(id, seckillBox);
        }
    },
//验证手机号
   validatePhone: function (phone) {
        if (phone && phone.length == 11 && !isNaN(phone)) {
            return true;
        } else {
            return false;
        }
    },

    detail: {
        //详情页初始化
        init: function (params) {
            //手机验证和登录，计时交互
            //规划我们的交互流程
            //在cookie中查找手机号
            var killPhone = $.cookie("killPhone");

            //验证手机号
            if (!seckill.validatePhone(killPhone)) {
                //为false时，需要重新绑定手机号
                //控制输出  killPhoneModal是detail.jsp中弹出层的参数
                var killPhoneModal = $('#killPhoneModal');
                killPhoneModal.modal({
                    //显示弹出层
                    show: true,
                    //禁止位置关闭
                    backdrop: 'static',
                    //关闭键盘事件
                    keyboard: false
                });
                //给验证信息做点击事件
                $('#killPhoneBtn').click(function () {
                    var inputPhone = $('#killPhoneKey').val();//当验证信息时。默认手机号已填写，
                    if (seckill.validatePhone(inputPhone)) {
                        //验证通过，刷新页面
                        //电话写入cookie
                        //expires: 7,控制cookie的有效期  7天
                        $.cookie('killPhone', inputPhone, {expires: 7, path: '/miaosha'});
                        window.location.reload();
                    } else {
                        $('#killPhoneMessage').hide().html
                        ('<label class="label label-danger">' +
                            '手机号码错误!</label>').show(300);//用户手机号有误
                    }
                });
            }
            //已经登录
            //计时交互
            var startTime = params['startTime'];
            var endTime = params['endTime'];
            var id = params['id'];
            $.get(seckill.url.now(), {}, function (result) {
                if (result && result['success']) {
                    var nowTime = result['date'];
                    //时间判断，
                            seckill.countdown(id, nowTime, startTime, endTime);
                } else {
                    console.log('result:' + result);
                }
            });

        }
    }
}